> AAOCG <> AAOCG <> AAOCG <> AAOCG <> AAOCG <> AAOCG <> AAOCG <> AAOCG <> AAOCG <> AAOCG <

CrAcKinG TutoRiaL bY ChendLer

______=2-> How to .... <-2=______

CracK Suckme 1.0 eazy by bart^CP
__________________________________M$

Tools:

SoftIce
W32dasm
Mozq

Wstep:

Witam znowu w kolejnym tutorialu. Dzis na rozwalke idzie crackme a raczej
suckme barta. Dlaczego suckme? tego to nie wiem (spytaj autora). Moze
dlatego ze jest tak fajnie zrobione.

Let's gO to TrAn$

Uruchamiamy crackmesa shit suckmesa i co widzimy....

Name:
Company:
Code:

Uzupelnianymy to wszystko ale uwaga:

gust
tato
imag
nado
smol
bart
devo
lobi
maxi
mish
p10t
prof
ptas
tepe
sach
spli
emot
iwan
zomo
maxi
plas
pawl
mr. 
rust
jube
{ato
pokr
jeli
zoom
liar
_200
anto
bene
chen < Co ja tu robie?
#eme
eamw
ed_w
gonz
immo
joke
ber7
liqu
ukep
teus
maxi
etor
noir
nona
ole$
ched
pwai
slau
paru
pivo
geri
dule
arak
coxo
oxca
jaro
bean
assh
mig-
zetx
r00t
niba
luka
virk
slon
ckpl
7tea
aaoc
gang
cook
sigm

Tak to nasza shit lista. Dobra ale zajmijmy sie crackme. Jest godzina 22.30 a ja juz
jestem tak spiacy (to od kompa) ze nie wiem czy to co napisze bedzie mialo sens.
Suckme jest tak czaddziorsko zrobione ze ho ho. Uruchom go i uruchom w32dasm.
A co widzisz no jak to co tylko suckme a gdzie w32dasm jest? No jego process
zycia sie skonczyl (TerminateProcess). Dobra uzupelnij dane i (ale zeby nie byly
zwiazane z shitlista). Ja wpisalem..:

Name: yogibabu
company: individual
code: 191919

Uruchamiamy softice i wpisujemy bpx getdlgitemtexta. F5 i Mozna bezpiecznie
wylaczyc komputer. Hmm to chyba nie jest z suckme zwiazane?
Czyli mamy tu do czynienia z niezwykle mala forma zycia o niezwykle spotykanej
duzej inteligencjii, ktora mozna nazwac sztuczna inteligencja. Standardowe
podejscia do tego odpadaja, no chyba ze lubisz resety kompa. 

UWAGA to suckme przeznaczone jest dla osob o niezwykle silnych nerwach.
Dla slabych (crackerow/newbiesow/etc/?) quake czeka. Dobra dalej
desambleruj w32dasme i do SDR. Co widzisz CreateThread. Zapisz project na dysk
Save di.....
zeby sie nam szybciej wgrywalo :)))

W debug.. wal pulapke na create... i co widzisz:

nic a ten kursor dziwny? Jakby system byl zajest. Hmm no to ctrl+d
i mamy naszego suckmera (zeby nie bylo suckera).

Patrz:

cmp byte ptr [eax],CC
jz <:=
      |
      gdzie skacze zobacz.

Czyli mamy cos w nim nie tak? Wpisz a i dwa nop
Ok suckme uruchomione ale sie zamyka. Dalej nie bede mowil co zrobic
bo powinienes sobie poradzic. Masz zlikwidowac mala petle zeby rozwalic
te sprytne rzeczy znajdujace sie w suckme. Jak tego nie zrobisz to astalavista
i restart kompa. Dalej gdy mamy to zrobione bpx getdlgitemtexta. ufF duzo tego
Zobacz co masz. Same wywolania get.. i tu sie nasze suckme sucka (zeby nie bylo fucka).
To co zrobimy ja chce seriala.. Dobra zrob tak nawal sobie pare razy F12 i gdy soft
ice sie zatrzyma to s ds:0 l FFFFFFFF "twoj serial"
do tego momentu az w oknie danych zobaczysz cos w tym stylu (chodzi o adres)
00401333
Wtedy powinienes go widziec. No twoj serial zlokalizowany w pamieci. To fajnie
teraz trza by sie dobrac to nastepnej czesci czyli generacji go. to bpm
i tu adres twego seriala. Zobaczysz kod:

:00401310 681D364000              push 0040361D
:00401315 A030334000              mov al, byte ptr [00403330]
:0040131A 0FB6C0                  movzx eax, al
:0040131D 0FBAE004                bt eax, 04
:00401321 0F8311010000            jnb 00401438
:00401327 0FBDD8                  bsr ebx, eax
:0040132A 0FBCD0                  bsf edx, eax
:0040132D 33DA                    xor ebx, edx
:0040132F 0F8503010000            jne 00401438
:00401335 6830324000              push 00403230
:0040133A 6830314000              push 00403130
:0040133F E866060000              Call 004019AA
:00401344 50                      push eax
:00401345 E866060000              Call 004019B0
:0040134A 2BC9                    sub ecx, ecx
:0040134C 41                      inc ecx
:0040134D 803C0100                cmp byte ptr [ecx+eax], 00
:00401351 75F9                    jne 0040134C
:00401353 49                      dec ecx
:00401354 BE56144000              mov esi, 00401456
:00401359 BB4B000000              mov ebx, 0000004B
:0040135E 8BE9                    mov ebp, ecx
:00401360 2BFF                    sub edi, edi
:00401362 8B16                    mov edx, dword ptr [esi]
:00401364 8BCD                    mov ecx, ebp
:00401366 391407                  cmp dword ptr [edi+eax], edx
:00401369 0F84C9000000            je 00401438
:0040136F 47                      inc edi
:00401370 E2F4                    loop 00401366
:00401372 83C604                  add esi, 00000004
:00401375 4B                      dec ebx
:00401376 75E8                    jne 00401360
:00401378 2BD2                    sub edx, edx
:0040137A 2BDB                    sub ebx, ebx
:0040137C 8BCD                    mov ecx, ebp
:0040137E 3210                    xor dl, byte ptr [eax]
:00401380 C1C207                  rol edx, 07
:00401383 81F28CA9F1EB            xor edx, EBF1A98C
:00401389 8D1C92                  lea ebx, dword ptr [edx+4*edx]
:0040138C 33D3                    xor edx, ebx
:0040138E D3C2                    rol edx, cl
:00401390 F7D2                    not edx
:00401392 40                      inc eax
:00401393 40                      inc eax
:00401394 49                      dec ecx
:00401395 49                      dec ecx
:00401396 79E6                    jns 0040137E
:00401398 92                      xchg eax,edx
:00401399 BF30324000              mov edi, 00403230
:0040139E E8D6040000              call 00401879
:004013A3 B8CD324000              mov eax, 004032CD
:004013A8 83C064                  add eax, 00000064
:004013AB 6A08                    push 00000008
:004013AD 59                      pop ecx
:004013AE 8A10                    mov dl, byte ptr [eax]
:004013B0 8A37                    mov dh, byte ptr [edi]
:004013B2 2AD6                    sub dl, dh
:004013B4 0F94C2                  sete dl
:004013B7 81E2FF000000            and edx, 000000FF
:004013BD FF149547144000          call dword ptr [4*edx+00401447]
:004013C4 E88D400247              call 47425456
:004013C9 E2E3                    loop 004013AE
:004013CB BE31334000              mov esi, 00403331
:004013D0 8A4601                  mov al, byte ptr [esi+01]
:004013D3 83E00F                  and eax, 0000000F
:004013D6 3C09                    cmp al, 09
:004013D8 7602                    jbe 004013DC
:004013DA B004                    mov al, 04
:004013DC 0430                    add al, 30
:004013DE 384603                  cmp byte ptr [esi+03], al
:004013E1 7555                    jne 00401438
:004013E3 8A4607                  mov al, byte ptr [esi+07]
:004013E6 C1E018                  shl eax, 18
:004013E9 8A5605                  mov dl, byte ptr [esi+05]
:004013EC C1E218                  shl edx, 18
:004013EF 03C2                    add eax, edx
:004013F1 7045                    jo 00401438
:004013F3 0FB74609                movzx eax, word ptr [esi+09]
:004013F7 99                      cdq
:004013F8 6A07                    push 00000007
:004013FA 59                      pop ecx
:004013FB F7F1                    div ecx
:004013FD 0FBAE200                bt edx, 00
:00401401 7335                    jnb 00401438
:00401403 0FBAE202                bt edx, 02
:00401407 732F                    jnb 00401438
:00401409 0FBAE201                bt edx, 01
:0040140D 7229                    jb 00401438
:0040140F 8A460B                  mov al, byte ptr [esi+0B]
:00401412 8A660D                  mov ah, byte ptr [esi+0D]
:00401415 66F7D0                  not ax
:00401418 3455                    xor al, 55
:0040141A 80F415                  xor ah, 15
:0040141D 3440                    xor al, 40
:0040141F 32C4                    xor al, ah
:00401421 7515                    jne 00401438
:00401423 99                      cdq
:00401424 0A460F                  or al, byte ptr [esi+0F]
:00401427 42                      inc edx
:00401428 D0D8                    rcr al, 1
:0040142A 73FB                    jnb 00401427
:0040142C 80F207                  xor dl, 07
:0040142F 7507                    jne 00401438

He he fajny nie? Dobra do roboty

:00401310 681D364000              push 0040361D
:00401315 A030334000              mov al, byte ptr [00403330]
:0040131A 0FB6C0                  movzx eax, al
:0040131D 0FBAE004                bt eax, 04
:00401321 0F8311010000            jnb 00401438

aha kod jest z w32dasm wiec moze byc z deczka zmieniony.
Dobra to co tu widzimy to sprawdzanie ilosci znakow w serialu. No to ile ich
potrzeba. Hmm przeczytaj moje poprzednie tuty a bedziesz wiedzial co zrobic
aby sie tego dowiedziec. Znakow w serialu ma byc 16. Jezeli jest tego tyle to
bardzo dobrze. Uzupelnijmy to jeszcze raz czyli serial

1234567891234567

spoko pamietasz s ds:0 l ..

Gdy to robisz i dojdziesz znowy do tego adresu (00401333) to alt+kursor w gore.
Co masz? jezeli wpisales moje dane to 8EDC01B7. Tak to wlasnie dobry serial ale
czekaj on ma 8 liter? to jak. Dobra uchyle rabka tajmnicy ten serial jest wpis -
sywany co 2 znak w formacie- 

x - twoja liczba czyli
s- serial

sxsxsxsxsxsxsxsx

Teraz tytlko wystarczy zdobyc tez x aby cieszyc sie dobrze rozwiazanym crackme.
Dobra ale jak to zrobic. Otoz dokonanie tego nie jest takie proste (a moze sie myle)
Przynajmniej zeby tego dokonac trza troche posiedziec nad tym.

:004013D0 8A4601                  mov al, byte ptr [esi+01]
:004013D3 83E00F                  and eax, 0000000F
:004013D6 3C09                    cmp al, 09
:004013D8 7602                    jbe 004013DC
:004013DA B004                    mov al, 04
:004013DC 0430                    add al, 30
:004013DE 384603                  cmp byte ptr [esi+03], al
:004013E1 7555                    jne 00401438

To juz powinienes wiedziec co to. Otoz to jest male porownanie 2 znaku z 4.
Musza byc rowne. Hmm to daj 0. Czyli do tej pory udalo sie nam osiagnac
tylko tyle.

80E0DxCx0x1xBx7x

Dobra idziemy dalej:

:004013E3 8A4607                  mov al, byte ptr [esi+07]
:004013E6 C1E018                  shl eax, 18
:004013E9 8A5605                  mov dl, byte ptr [esi+05]
:004013EC C1E218                  shl edx, 18
:004013EF 03C2                    add eax, edx
:004013F1 7045                    jo 00401438

Nasz 8 i 6 znak ulega malemu shl. To nie jest skomplikowane takze wylicz
te znaki. 

80E0DxCx0x1xBx7x

Stop do tego musi sie odnosic jeszcze cos. Co tym jest?
ten kawalek kodu:

sub al,al
sub al,7
sub al,ah

Teraz spisalem go z softice wiec jest bez 0040...
On tez robi mielonke nad tymi znakami czyli nad 6 i 8. Dobra do tej pory mamy

80E0DMC#0x1xBx7x

ufF policzysz dalej sam? jest to proste

:004013F3 0FB74609                movzx eax, word ptr [esi+09]
:004013F7 99                      cdq
:004013F8 6A07                    push 00000007
:004013FA 59                      pop ecx
:004013FB F7F1                    div ecx
:004013FD 0FBAE200                bt edx, 00
:00401401 7335                    jnb 00401438
:00401403 0FBAE202                bt edx, 02
:00401407 732F                    jnb 00401438
:00401409 0FBAE201                bt edx, 01
:0040140D 7229                    jb 00401438
:0040140F 8A460B                  mov al, byte ptr [esi+0B]
:00401412 8A660D                  mov ah, byte ptr [esi+0D]
:00401415 66F7D0                  not ax
:00401418 3455                    xor al, 55
:0040141A 80F415                  xor ah, 15
:0040141D 3440                    xor al, 40
:0040141F 32C4                    xor al, ah
:00401421 7515                    jne 00401438 < jesli rowne to good
:00401423 99                      cdq
:00401424 0A460F                  or al, byte ptr [esi+0F]
:00401427 42                      inc edx
:00401428 D0D8                    rcr al, 1
:0040142A 73FB                    jnb 00401427
:0040142C 80F207                  xor dl, 07
:0040142F 7507                    jne 00401438 <wiadomo

To naszym koncowym serialem jest:

80E0DMC#0/10B07@

Teraz tylko styknie aby napisac keygena. Ja  tego nie zrobie
gdyz pisanie keygenow idzie mi nie najlepiej.

___________________________________M$

<>> AAOCG <> AAOCG <> AAOCG <> AAOCG <> AAOCG <> AAOCG